home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Scope / Scope Disk #058 (199x)(Scope PD)(US)[WB].zip / Scope Disk #058 (199x)(Scope PD)(US)[WB].adf / B1Subs / TextRace < prev    next >
Text File  |  1989-01-24  |  7KB  |  299 lines

  1.  
  2.   WINDOW 1,"       ** THE GREAT AmigaBASIC TEXT RACE **             ",(0,10)-(450,170),22,-1
  3.   COLOR 2,1:CLS
  4.   PRINT ,"Loading ";CHR$(34);"graphics.bmap";CHR$(34)   
  5.  
  6. '************************************** 
  7. '* You will need the following LIBRARY*
  8. '* line plus the sub-routine of your  *
  9. '* choice. (routine numbers 1 thru 5) *
  10. '************************************** 
  11.  
  12. '**** Required ************************  
  13.   CHDIR ":" :REM <-- points to ".bmap"
  14.   LIBRARY "graphics.library"
  15. '**************************************
  16.   
  17.   CLEAR,25000
  18.   ON BREAK GOSUB PickOne
  19.   BREAK ON 
  20.   DEFINT A-Z
  21.   DIM Top$(9)
  22.   
  23.   InFile$="J:TextRace.txt"
  24.   
  25.   Top$(1)= " #1 Slowest - PRINT statement 32 color
  26.   Top$(2)= " #2 Regular WorkBench resolution PRINT
  27.   Top$(3)= " #3 Sub-Program CALLs graphics.library 
  28.   Top$(4)= " #4 Using ScrollRaster 2 color
  29.   Top$(5)= " #5 In-Line CALLs top to bottom text 2 color  
  30.   Top$(6)= " #6 Scroll then click for next page
  31.   Top$(7)= " #7 Top to bottom, then click for next page
  32.   Top$(8)= " #8 STOP and LIST program
  33.   Top$(9)= " #9 Leave Basic. Return to WorkBench
  34.   COLOR 2,1:   CLS: PRINT " "; 
  35.   COLOR 1,3
  36.   PRINT "  1    2    3    4    5    6    7    8    9  "
  37.   FOR I=0 TO 8
  38.     LINE(I*40+7,-1)-STEP(39,8),2,B
  39.   NEXT  
  40.   COLOR 2,1
  41.    
  42.   PRINT " Press key (#1 thru #9) or click above
  43.   PRINT "
  44.   FOR I=1 TO 9:PRINT Top$(I):NEXT  
  45.   PRINT 
  46.   PRINT "   A collection of routines you might want to
  47.   PRINT " use for displaying text.
  48.  
  49.   PRINT "   The options 3 thru 7 require that the
  50.   PRINT " graphics.bmap be loaded from your disk.
  51.  
  52.   PRINT "   Speeds will be shown at the bottom of the screens.
  53.   PRINT 
  54. PickOne:
  55.   WINDOW CLOSE 2
  56.   SCREEN CLOSE 2
  57.   Key = 0: mKey = 0
  58.   WHILE 1
  59.     XY=MOUSE(0):X=MOUSE(1):Y=MOUSE(2)  
  60.     IF XY<>0 AND Y<11 THEN mKey=INT(X*.025)+1 
  61.     A$=INKEY$
  62.     IF A$>"" THEN Key=ASC(A$)-48
  63.     IF mKey>0 AND mKey<10 THEN Key=mKey
  64.     IF Key>0 AND Key<10 THEN Which
  65.   WEND
  66.  
  67. Which:
  68.   ON Key GOTO 1,2,3,4,5,6,7,StopList,Ender
  69. '**************************************
  70.  
  71. '**************************************
  72. '*** #1 Slowest - PRINT statement 32 color
  73. '**************************************
  74.   SCREEN 2,320,200,5,1 
  75.   WINDOW 2,Top$(1),(0,0)-(311,184),0,2
  76.   T&=TIMER:  
  77.    
  78.   OPEN InFile$ FOR INPUT AS #1
  79.  
  80.   WHILE NOT EOF(1) 
  81.     INPUT #1, GettingFile$
  82.     PRINT GettingFile$   
  83.   WEND
  84.     
  85.   B=LOF(1):  CLOSE #1 
  86. '**************** END *****************
  87.  GOTO Meter
  88.  
  89. '**************************************
  90. '*** #2 Regular WorkBench resolution PRINT
  91. '**************************************
  92.   WINDOW 2,Top$(2),(0,2)-(631,184),0,-1
  93.   T&=TIMER:  
  94.    
  95.   OPEN InFile$ FOR INPUT AS #1
  96.  
  97.   WHILE NOT EOF(1) 
  98.     INPUT #1, GettingFile$
  99.     PRINT GettingFile$   
  100.   WEND
  101.     
  102.   B=LOF(1):  CLOSE #1 
  103. '**************** END *****************
  104.   GOTO Meter
  105.   
  106. '**************************************  
  107. '*** #3 Sub-Program CALLs graphics.library 
  108. '**************************************
  109.   SCREEN 2,640,400,1,2
  110.   WINDOW 2,Top$(3),(0,2)-(631,210),0,2
  111.    
  112.   T&=TIMER:       W8&=WINDOW(8):  
  113.   Botm=WINDOW(3): BotmLine=Botm-8
  114.   X&=2:           Y&=Botm-3
  115.   LOCATE Botm*.125
  116.    
  117.   OPEN InFile$ FOR INPUT AS #1
  118.   
  119.   WHILE NOT EOF(1) 
  120.     INPUT #1, GettingFile$   
  121.     At X&,Y& 
  122.     Display GettingFile$ 
  123.     PRINT  
  124.   WEND
  125.     
  126.   B=LOF(1): CLOSE #1: GOTO Meter
  127.   
  128. '*** Display and At sub-programs for #3
  129.  
  130.  SUB At(X&,Y&) STATIC
  131.    CALL Move&(WINDOW(8),X&,Y&)
  132.  END SUB
  133.  
  134.  SUB Display(Txt$) STATIC
  135.    CALL Text&(WINDOW(8),SADD(Txt$),LEN(Txt$))
  136.  END SUB
  137. '**************** END *****************
  138.  
  139. '**************************************
  140. '*** #4 Using ScrollRaster 2 color
  141. '**************************************
  142.   SCREEN 2,640,400,1,2
  143.   WINDOW 2,Top$(4),(0,2)-(631,210),0,2
  144.    
  145.   T&=TIMER:        
  146.   W8&=WINDOW(8):  Bot=27*8
  147.   Botm=WINDOW(3): BotmLine=Botm-8
  148.    
  149.   OPEN InFile$ FOR INPUT AS #1
  150.  
  151.   WHILE NOT EOF(1) 
  152.     INPUT #1, GettingFile$   
  153.     CALL Move&(W8&,2,BotmLine)
  154.     CALL Text&(W8&,SADD(GettingFile$),LEN(GettingFile$))
  155.     CALL ScrollRaster&(W8&,0,8,0,0,630,Botm)
  156.   WEND
  157.     
  158.   B=LOF(1):  CLOSE #1 
  159. '**************** END *****************
  160.   GOTO Meter
  161.  
  162. '**************************************  
  163. '*** #5 In-Line CALLs top to bottom text 2 color  
  164. '**************************************
  165.   SCREEN 2,640,400,1,2
  166.   WINDOW 2,Top$(5),(0,2)-(631,210),0,2
  167.    
  168.   T&=TIMER:       Lines&=7
  169.   W8&=WINDOW(8):  Bot=27*8
  170.   Botm=WINDOW(3): BotmLine=Botm-8
  171.    
  172.   OPEN InFile$ FOR INPUT AS #1
  173.  
  174.   WHILE NOT EOF(1) 
  175.     INPUT #1, GettingFile$   
  176.     CALL Move&(W8&,2,Lines&)
  177.     CALL Text&(W8&,SADD(GettingFile$),LEN(GettingFile$))
  178.     CALL ClearEOL&(W8&)
  179.     Lines&=Lines&+8
  180.     IF Lines&>=Bot THEN Lines&=7
  181.   WEND
  182.     
  183.   B=LOF(1):  CLOSE #1 
  184. '**************** END *****************
  185.   GOTO Meter
  186.   
  187. '**************************************
  188. '*** #6 Using ScrollRaster 2 color
  189. '***    plus WAIT at end of page
  190. '**************************************
  191.   SCREEN 2,640,400,1,2
  192.   WINDOW 2,Top$(4),(0,2)-(631,210),0,2
  193.    
  194.   T&=TIMER:       L=0 
  195.   W8&=WINDOW(8):  Bot=27*8
  196.   Botm=WINDOW(3): BotmLine=Botm-8
  197.    
  198.   OPEN InFile$ FOR INPUT AS #1
  199.  
  200.   WHILE NOT EOF(1) 
  201.     LINE INPUT #1, GettingFile$  
  202.     CALL Move&(W8&,2,BotmLine)
  203.     CALL Text&(W8&,SADD(GettingFile$),LEN(GettingFile$))
  204.     CALL ScrollRaster&(W8&,0,8,0,0,630,Botm)
  205.     L=L+1
  206.     IF L>21 THEN
  207.      L=0 :LOCATE 25,1
  208.      PRINT :PRINT ,,"Click to continue"
  209.      PRINT 
  210.      XY=MOUSE(0)
  211.      WHILE MOUSE(0)=0:WEND
  212.      WHILE MOUSE(0)<>0:WEND
  213.     END IF  
  214.   WEND
  215.     
  216.   B=LOF(1):  CLOSE #1 
  217. '**************** END *****************
  218.   GOTO Meter
  219.  
  220. '**************************************  
  221. '*** #7 In-Line CALLs top to bottom text 2 color  
  222. '***    plus WAIT at end of page
  223. '**************************************
  224.   SCREEN 2,640,400,1,2
  225.   WINDOW 2,Top$(5),(0,2)-(631,210),0,2
  226.    
  227.   T&=TIMER:       Lines&=7
  228.   W8&=WINDOW(8):  Bot=23*8
  229.   Botm=WINDOW(3): BotmLine=Botm-8
  230.    
  231.   OPEN InFile$ FOR INPUT AS #1
  232.  
  233.   WHILE NOT EOF(1) 
  234.     LINE INPUT #1, GettingFile$   
  235.     CALL Move&(W8&,2,Lines&)
  236.     CALL Text&(W8&,SADD(GettingFile$),LEN(GettingFile$))
  237.     CALL ClearEOL&(W8&)
  238.     Lines&=Lines&+8
  239.     IF Lines&>=Bot THEN
  240.       Lines&=7
  241.       'LOCATE 25,1:
  242.       PRINT 
  243.       PRINT ,,"Click to continue"
  244.       XY=MOUSE(0)
  245.       WHILE MOUSE(0)=0:WEND
  246.       WHILE MOUSE(0)<>0:WEND
  247.     END IF  
  248.       
  249.   WEND
  250.     
  251.   B=LOF(1):  CLOSE #1 
  252. '**************** END *****************
  253.  
  254. Meter:  
  255.   COLOR 1,0: PRINT   
  256.   PRINT B;" bytes";SPACE$(80)  
  257.   PRINT TIMER-T&;" seconds";SPACE$(80)  
  258.   IF B>0 AND (TIMER-T&)>0 THEN
  259.     T= INT(B/(TIMER-T&))
  260.     PRINT T;" bytes per second";SPACE$(80)
  261.   END IF
  262.   PRINT "   CLICK to END";SPACE$(80)
  263.   PRINT  
  264.       
  265. WayCheer:
  266.   WHILE MOUSE(0)<>0: SLEEP: WEND
  267.   WHILE MOUSE(0)=0: SLEEP: WEND
  268.   WHILE MOUSE(0)<>0: SLEEP: WEND
  269.   GOTO PickOne 
  270.       
  271. StopList:
  272.   LIBRARY CLOSE 
  273.   CLEAR ,25000
  274.   LIST
  275.   COLOR 1,3 
  276.   PRINT ,"  Okay?   JeC 10/88  "
  277.   COLOR 2,1  
  278.   PRINT 
  279.   END
  280.   
  281. Ender:            
  282.   LIBRARY CLOSE 
  283.   CLEAR ,25000
  284.   COLOR 2,1
  285.   FOR I=1 TO 40
  286.   PRINT ,"   JeC 10/88  "
  287.   NEXT
  288.  
  289.   SYSTEM  
  290.  
  291.  
  292.